home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio / Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso / DREAMSDK.WIN / INCLUDE / EVXDBAPI.H < prev    next >
C/C++ Source or Header  |  1995-11-04  |  19KB  |  402 lines

  1. // Copyright ©1993 Ray Dream, Inc. All Right Reserved.
  2. /* $Id: EVXDBAPI.H 1.13 1995/11/04 17:22:50 YannPC Exp $ */
  3.  
  4. // Defines the API with Ray Dream Designer 3.0's 3D Database
  5.  
  6. // Version number of the API:
  7. //
  8. //   0   RDD version 3.0.0
  9. //     1   RDD version 3.0.2
  10. //            TPatchMesh primitive
  11. //            TFlatSurface primitive
  12. //            EVXTreeGlobalMatSetAll()
  13. //            EVXTreeGlobalMatGetAll()
  14. //   2   RDD version 3.0.4
  15. //   3   RDD version 3.1.3 (cross-platform API)
  16. //            EVXGetIndString()
  17.  
  18. #ifndef __EVXDBAPI__
  19. #define __EVXDBAPI__
  20.  
  21. #ifndef __XRTYPES__
  22. #include "XRTypes.h"
  23. #endif
  24.  
  25. #ifndef __MTYPES__
  26. #include "mtypes.h"
  27. #endif
  28.  
  29. #ifndef __cplusplus
  30. #ifndef class
  31. #define class typedef void*
  32. #endif
  33. #endif
  34.  
  35. #ifndef IDTYPE
  36. #define IDTYPE(x,y,z,t) ((((long)x)<<24)|(((long)y)<<16)|(((long)z)<<8)|((long)t))
  37. #endif
  38.  
  39. #ifndef _WIN31
  40. #define __loadds
  41. #endif
  42.  
  43. class Riostream;
  44. class TScene;
  45. class TInstanciableBase;
  46. class TImportedPrimitive;
  47. class TPolygonMesh;
  48. class TPatchMesh;
  49. class TFlatSurface;
  50. class TExtrusion;
  51. class TCrossSection;
  52. class TInstance;
  53. class TComponentUI;
  54. class TLight;
  55. class TCamera;
  56. class TGroup;
  57. class TTree;
  58. class TEVOffscreen;
  59. class TShadingShape;
  60. class TShader;
  61. class TMap;
  62. class QuickFix;
  63. class QuickFixVector3;
  64.  
  65. struct TREETRANSFORM3D;
  66. struct UVSpaceInfo;
  67. struct FACET3D;
  68. struct VERTEX3D;
  69. struct PATCH3D;
  70.  
  71. //-- Contants for EVXTreeGetType()    API 1
  72. #define kEVXTreeGroup 1
  73. #define kEVXTreeInstance 2
  74. #define kEVXTreeCamera 4
  75. #define kEVXTreeLight 8
  76. #define kEVXTreeWorkingBox 16
  77.  
  78. //-- Parameter blocks for building extrusions:
  79. typedef struct    {
  80.     VECTOR3            fVertex;                // Vertex
  81.     // Fill these only if using envelopes:
  82.     VECTOR3            fTopEnv;                // Envelope: top curve on right wall
  83.     VECTOR3            fBotEnv;                // Envelope: bottom curve on right wall
  84.     VECTOR3            fLeftEnv;                // Envelope: left curve on floor
  85.     VECTOR3            fRightEnv;            // Envelope: right curve on floor
  86.     } SEVX3DPathPoint;
  87.  
  88. typedef struct {
  89.     SEVX3DPathPoint        f3DPathPrevControl1;        // Don't fill this if 1st section
  90.     SEVX3DPathPoint        f3DPathPrevControl2;        // Don't fill this if 1st section
  91.     VECTOR3                        f3DPathVertex;                    // Put 0 in x and z unless you know what you're doing
  92.     BOOLEAN                        fFill;
  93.     BOOLEAN                        fSkinToNext;
  94.     } SEVXExtrusionHeaderPB;
  95.  
  96. typedef struct    {        // Adding a non-automatic cross-section
  97.     SEVXExtrusionHeaderPB        fHeader;
  98.     //-- Specific parameters:
  99.     TCrossSection*        fCrossSection;
  100.     FIXED                            fTwisting;                            // Twisting angle
  101.     } SEVXExtrusionPB;
  102.  
  103. typedef struct    {        // Adding an automatic cross-section
  104.     SEVXExtrusionHeaderPB        fHeader;
  105.     //-- Specific parameters:
  106.     FIXED                            fTopScaling;
  107.     FIXED                            fBotScaling;
  108.     FIXED                            fLeftScaling;
  109.     FIXED                            fRightScaling;
  110.     } SEVXExtrusionAutoPB;
  111.  
  112. //-- Structure for manipulating Bezier patches:
  113. // A patch is a 4x4 array of 3D points. To access point [i,j], we follow
  114. // the standard convention:  point[i,j] = array[i*4+j]  ;  0<=i,j<=3
  115. typedef VECTOR3 SEVXPatchData[16];
  116.  
  117.  
  118. #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
  119. #pragma pointers_in_D0
  120. #endif
  121. #ifdef __cplusplus
  122. extern "C" {
  123. #endif
  124.  
  125. //---- Misc. Utils ----
  126. short __loadds EVXGetAppVersion();    // Returns the Application version number in BCD
  127. long __loadds EVXGetAPINumber();        // Returns the host's API number.    API 1
  128. void __loadds EVXGetIndString(char* str, short strID, short itemNo);    // API 2
  129.  
  130. //---- Riostream ----
  131. Riostream* __loadds EVXEVStreamNew(char* fulPathName, BOOLEAN readOrWrite);
  132. void __loadds EVXEVStreamDelete(Riostream* This);
  133. long __loadds EVXStreamGetFileSize(Riostream* This);
  134.  
  135. //--- Progression Bar ----
  136. void __loadds EVXProgressStart(char* prompt, long max);    // prompt can be nil. new interface API 2
  137. void __loadds EVXProgressIncrement(long increment);
  138. void __loadds EVXProgressNewValue(long newValue);                    // Use either EVXProgressIncrement() or EVXProgressNewValue()
  139. void __loadds EVXProgressDone();
  140.  
  141. //---- TComponentUI ----
  142. TComponentUI* __loadds EVXCompUINew(long familySignature,long classSignature);        // API 1
  143. void __loadds EVXCompUIDelete(TComponentUI* This);                                                                    // API 1
  144. void __loadds EVXCompUISetParameter(TComponentUI* This, long keyword, void* parameter);
  145. void __loadds EVXCompUIGetParameter(TComponentUI* This, long keyword, void* parameter);
  146.  
  147. //--------------------------------------------------------------------------
  148. // Hierarchy:
  149. //     TInstanciableBase 
  150. //       TImportedPrimitive
  151. //       TPolygonMesh
  152. //       TPatchMesh
  153. //       TFlatSurface
  154. //       TExtrusion
  155. //       TScene
  156. //
  157. // As TImportedPrimitive, TExtrusion, etc. inherit from TInstanciableBase, 
  158. //  all EVXInstanciableBase… procs can be used with them. Just cast them to TInstanciableBase*.
  159. //--------------------------------------------------------------------------
  160.  
  161.  
  162. //---- TInstanciableBase ----
  163. TInstanciableBase* __loadds EVXInstanciableBaseNew(long keyword, TScene* scene);
  164. void __loadds EVXInstanciableBaseSetName(TInstanciableBase* This, char* name);
  165. void __loadds EVXInstanciableBaseGetName(TInstanciableBase* This, char* name);
  166. void __loadds EVXInstanciableBaseDelete(TInstanciableBase* This);
  167. void __loadds EVXInstanciableSetSimpleShading(TInstanciableBase* This, 
  168.                     VECTOR3* color, FIXED specularityIntensity, FIXED specularityIndex, 
  169.                     FIXED reflection, FIXED transparency);
  170. void __loadds EVXInstanciableSetPrimer(TInstanciableBase* This,TShader* theShader)    ;
  171. long __loadds EVXInstanciableGetUVSpace(TInstanciableBase* This,long uvSpaceID,UVSpaceInfo* theuvSpaceInfo);
  172. long __loadds EVXInstanciableGetUVSpaceCount(TInstanciableBase* This);
  173. void __loadds EVXInstanciableAddShadingShape(TInstanciableBase* This,TShadingShape*theShadingShape,long uvSpaceID);
  174. BOOLEAN __loadds EVXInstanciableIsPatchBased(TInstanciableBase* This);        // API 1
  175. typedef  void (*EVXInstanciableForEachFacetCallBack)(FACET3D *aF,void *priv);
  176. void __loadds EVXInstanciableForEachFacet(TInstanciableBase* This,EVXInstanciableForEachFacetCallBack proc,void *priv);        // API 1
  177. typedef  void (*EVXInstanciableForEachPatchCallBack)(PATCH3D *aF,void *priv);
  178. void __loadds EVXInstanciableForEachPatch(TInstanciableBase* This,EVXInstanciableForEachPatchCallBack proc,void *priv);            // API 1
  179.  
  180. //---- TImportedPrimitive ----
  181. TImportedPrimitive* __loadds EVXImportedNew(TScene* scene, BOOLEAN hasNormals, BOOLEAN hasUV);
  182. short __loadds EVXImportedAddFacet(TImportedPrimitive* This, FACET3D* facet);
  183. long __loadds EVXImportedGetNbFacets(TImportedPrimitive* This);
  184. FACET3D* __loadds EVXImportedGetIndFacets(TImportedPrimitive* This, long index);        // (index is 1 based)
  185. void __loadds EVXImportedRemoveFacet(TImportedPrimitive* This, long index);                // (index is 1 based)
  186. short __loadds EVXImportedPreAllocateFacets(TImportedPrimitive* This, long nbFacets);
  187. void __loadds EVXImportedSetUVSpace(TImportedPrimitive* This, VECTOR2* minUV, VECTOR2* maxUV); // Necessary if hasUV = true
  188. void __loadds EVXImportedCalcNormals(TImportedPrimitive* This, FIXED smoothAngle);        // smoothAngle in degrees
  189.  
  190. //---- TPolygonMesh ----
  191. TPolygonMesh* __loadds EVXPolygonMeshNew(TScene* scene, long uCount, long vCount, BOOLEAN uClosed, BOOLEAN vClosed);
  192. void __loadds EVXPolygonMeshSetVertex(TPolygonMesh* This, long uIndex, long vIndex, VECTOR3* vertex, VECTOR3* normal);    // normal can be nil
  193. void __loadds EVXPolygonMeshGetVertex(TPolygonMesh* This, long uIndex, long vIndex, VECTOR3* vertex, VECTOR3* normal);    // normal can be nil
  194. void __loadds EVXPolygonMeshSetU(TPolygonMesh* This, long uIndex, FIXED uValue);
  195. void __loadds EVXPolygonMeshSetV(TPolygonMesh* This, long vIndex, FIXED vValue);
  196. void __loadds EVXPolygonMeshGetU(TPolygonMesh* This, long uIndex, FIXED* uValue);
  197. void __loadds EVXPolygonMeshGetV(TPolygonMesh* This, long vIndex, FIXED* vValue);
  198. void __loadds EVXPolygonMeshCalcUV(TPolygonMesh* This);    // Calculate for you all (u,v) values
  199. void __loadds EVXPolygonMeshCalcNormals(TPolygonMesh* This, BOOLEAN smooth); // Calculate for you all normals
  200.  
  201. //---- TPatchMesh ----  API 1
  202. TPatchMesh* __loadds EVXPatchMeshNew(TScene* scene, long uCount, long vCount);
  203. void __loadds EVXPatchMeshSetPatch(TPatchMesh* This, long uIndex, long vIndex, SEVXPatchData* vertices);
  204. void __loadds EVXPatchMeshGetPatch(TPatchMesh* This, long uIndex, long vIndex, SEVXPatchData* vertices);
  205. void __loadds EVXPatchMeshSetU(TPatchMesh* This, long uIndex, FIXED uValue);
  206. void __loadds EVXPatchMeshSetV(TPatchMesh* This, long vIndex, FIXED vValue);
  207. void __loadds EVXPatchMeshGetU(TPatchMesh* This, long uIndex, FIXED* uValue);
  208. void __loadds EVXPatchMeshGetV(TPatchMesh* This, long vIndex, FIXED* vValue);
  209. void __loadds EVXPatchMeshCalcUV(TPatchMesh* This);    // Calculate for you all (u,v) values
  210.  
  211. //---- TFlatSurface ----  API 1
  212. TFlatSurface* __loadds EVXFlatSurfaceNew(TScene* scene);
  213. void __loadds EVXFlatSurfaceBeginFlatSurface(TFlatSurface* This);
  214. void __loadds EVXFlatSurfaceEndFlatSurface(TFlatSurface* This);
  215. void __loadds EVXFlatSurfaceBeginGroup(TFlatSurface* This);
  216. void __loadds EVXFlatSurfaceEndGroup(TFlatSurface* This);
  217. void __loadds EVXFlatSurfaceBeginCmpnd(TFlatSurface* This);
  218. void __loadds EVXFlatSurfaceEndCmpnd(TFlatSurface* This);
  219. void __loadds EVXFlatSurfaceBeginPath(TFlatSurface* This, VECTOR2* p0);
  220. void __loadds EVXFlatSurfaceLineTo(TFlatSurface* This, VECTOR2* p1);
  221. void __loadds EVXFlatSurfaceBezierTo(TFlatSurface* This, VECTOR2* p1, VECTOR2* p2, VECTOR2* p3);
  222. void __loadds EVXFlatSurfaceEndPath(TFlatSurface* This);
  223.  
  224. //---- TExtrusion ----
  225. TExtrusion* __loadds EVXExtrusionNew(TScene* scene);
  226. void __loadds EVXExtrusionStartBuilding(TExtrusion* This, BOOLEAN pipeline, BOOLEAN useEnvelopes, short envelopesFlags);
  227. void __loadds EVXExtrusionAddCrossSection(TExtrusion* This, SEVXExtrusionPB* pb);
  228. void __loadds EVXExtrusionAddAutoCrossSection(TExtrusion* This, SEVXExtrusionAutoPB* pb);
  229. void __loadds EVXExtrusionEndBuilding(TExtrusion* This);
  230. void __loadds EVXExtrusionCenterData(TExtrusion* This);    // To do after EVXExtrusionEndBuilding(). Center data using regular bbox
  231. void __loadds EVXExtrusionCenterFacetData(TExtrusion* This);    // To do after EVXExtrusionEndBuilding(). Center data using facets bbox. SLOW.
  232.  
  233. //---- TCrossSection ----
  234. TCrossSection* __loadds EVXCrossSectionNew(TExtrusion* extrusion);
  235. void __loadds EVXCrossSectionDelete(TCrossSection* This);    // Use only if not inserted in an extrusion
  236. TCrossSection* __loadds EVXCrossSectionClone(TCrossSection* This);
  237. void __loadds EVXCrossSectionBeginSection(TCrossSection* This);
  238. void __loadds EVXCrossSectionEndSection(TCrossSection* This);
  239. void __loadds EVXCrossSectionBeginGroup(TCrossSection* This);
  240. void __loadds EVXCrossSectionEndGroup(TCrossSection* This);
  241. void __loadds EVXCrossSectionBeginCmpnd(TCrossSection* This);
  242. void __loadds EVXCrossSectionEndCmpnd(TCrossSection* This);
  243. void __loadds EVXCrossSectionBeginPath(TCrossSection* This, VECTOR2* p0);
  244. void __loadds EVXCrossSectionLineTo(TCrossSection* This, VECTOR2* p1);
  245. void __loadds EVXCrossSectionBezierTo(TCrossSection* This, VECTOR2* p1, VECTOR2* p2, VECTOR2* p3);
  246. void __loadds EVXCrossSectionEndPath(TCrossSection* This);
  247. void __loadds EVXCrossSectionMove(TCrossSection* This, VECTOR2* delta);
  248. void __loadds EVXCrossSectionTransform(TCrossSection* This, VECTOR2* ti, VECTOR2* tj, VECTOR2* tt);
  249. void __loadds EVXCrossSectionGetBBox(TCrossSection* This, VECTOR2* minPt, VECTOR2* maxPt);
  250.  
  251. //---- TScene ----
  252. void __loadds EVXSceneDoRead(TScene* This, Riostream* stream, char* fullPathName);
  253. void __loadds EVXSceneDoNeedDiskSpace(TScene* This, long* dataForkSize, long* rsrcForkSize);
  254. void __loadds EVXSceneDoWrite(TScene* This, TTree* fatherTree, Riostream* stream, TEVOffscreen* preview, BOOLEAN writeALLobjects, char* fullPathName, short versionNumber);
  255.  
  256. void __loadds EVXSceneSetComment(TScene* This, char* comment); //comment is a pascal-string
  257. void __loadds EVXSceneGetComment(TScene* This, char* comment);  //comment is a pascal-string
  258.  
  259. // Objects (=TInstanciableBase) list:
  260. TInstanciableBase* __loadds EVXSceneGetIndObject(TScene* This, long index);        // (index is 1 based)
  261. long __loadds EVXSceneGetNbObjects(TScene* This);
  262. TInstanciableBase* __loadds EVXSceneGetNamedObject(TScene* This, char* name);
  263. void __loadds EVXSceneInsertObject(TScene* This, TInstanciableBase* object);
  264. void __loadds EVXSceneRemoveObject(TScene* This, TInstanciableBase* object);
  265. void __loadds EVXSceneObjectChanged(TScene* This, TInstanciableBase* object);
  266.  
  267. TGroup* __loadds EVXSceneGetUniverse(TScene* This);
  268. void __loadds EVXSceneSetUniverse(TScene* This, TGroup* universe);    // Works only if This->GetUniverse() is nil
  269. void __loadds EVXSceneCreateUniverseIfNone(TScene* This);
  270. #ifdef __cplusplus
  271. void __loadds EVXSceneCreateRenderingCameraIfNone(TScene* This, long camType = IDTYPE('c','o','n','i'), Boolean createDistantLight = false);
  272. #else
  273. void __loadds EVXSceneCreateRenderingCameraIfNone(TScene* This, long camType, Boolean createDistantLight);
  274. #endif
  275. TCamera* __loadds EVXSceneGetRenderingCamera(TScene* This);
  276. void __loadds EVXSceneSetRenderingCamera(TScene* This, TCamera* camera);
  277.  
  278. // Scene Tree parsing
  279. TLight* __loadds EVXSceneGetIndLight(TScene* This, long index);        // (index is 1 based)
  280. long __loadds EVXSceneGetNbLights(TScene* This);
  281. TCamera* __loadds EVXSceneGetIndCamera(TScene* This, long index);        // (index is 1 based)
  282. long __loadds EVXSceneGetNbCameras(TScene* This);
  283. TInstance* __loadds EVXSceneGetIndInstance(TScene* This, long index);        // (index is 1 based)
  284. long __loadds EVXSceneGetNbInstances(TScene* This);
  285.  
  286. // Render settings
  287. void __loadds EVXSceneSetAmbientLight(TScene* This, COLOR* color);
  288. void __loadds EVXSceneSetProdFormat(TScene* This, FIXED sizeh, FIXED sizev, FIXED dpi);
  289. void __loadds EVXSceneGetAmbientLight(TScene* This, COLOR* color);
  290. void __loadds EVXSceneGetProdFormat(TScene* This, FIXED* sizeh, FIXED* sizev, FIXED* dpi);
  291.  
  292. //--------------------------------------------------------------------------
  293. // Hierarchy:
  294. //     TTree
  295. //       TGroup
  296. //       TLight
  297. //       TCamera
  298. //       TInstance
  299. //
  300. // As TGroup, TLight, TCamera and TInstance inherit from TTree, 
  301. //  all EVXTree… procs can be used with them. Just cast them to TTree*.
  302. //--------------------------------------------------------------------------
  303.  
  304. //---- TTree ----
  305. void __loadds EVXTreeDelete(TTree* This);
  306. short __loadds EVXTreeGetType(TTree* This);    // See constants kEVXTreeGroup, kEVXTreeInstance, etc. API 1
  307. void __loadds EVXTreeInsertFirst(TTree* This, TTree* newSon);
  308. void __loadds EVXTreeInsertLast(TTree* This, TTree* newSon);
  309. void __loadds EVXTreeInsertLeft(TTree* This, TTree* newBrother);
  310. void __loadds EVXTreeInsertRight(TTree* This, TTree* newBrother);
  311. TTree* __loadds EVXTreeGetFirst(TTree* This);
  312. TTree* __loadds EVXTreeGetLast(TTree* This);
  313. TTree* __loadds EVXTreeGetLeft(TTree* This);
  314. TTree* __loadds EVXTreeGetRight(TTree* This);
  315. TTree* __loadds EVXTreeGetTop(TTree* This);
  316. TTree* __loadds EVXTreeUnLink(TTree* This);    // Return old father
  317. long __loadds EVXTreeGetNumber(TTree* This);
  318. void __loadds EVXTreeSetNumber(TTree* This, long number);
  319. void __loadds EVXTreeSetName(TTree* This, char* name);
  320. void __loadds EVXTreeGetName(TTree* This, char* name);
  321. void __loadds EVXTreeSetRDD2Mat(TTree* This, FIXED* matRDD2);    // Ray Dream, Inc. use only
  322. void __loadds EVXTreeMatReset(TTree* This);
  323. void __loadds EVXTreeMatTranslate(TTree* This, VECTOR3* translation);
  324. void __loadds EVXTreeMatSetAll(TTree* This, TREETRANSFORM3D* treeTransform);
  325. void __loadds EVXTreeMatGetAll(const TTree* This, TREETRANSFORM3D* treeTransform);
  326. void __loadds EVXTreeGlobalMatSetAll(TTree* This, TREETRANSFORM3D* treeTransform);
  327. void __loadds EVXTreeGlobalMatGetAll(const TTree* This, TREETRANSFORM3D* treeTransform);
  328. void __loadds EVXTreeCenterObjectOnHotPoint(TTree* This);
  329. void __loadds EVXTreeCenterHotPointOnObject(TTree* This);
  330. void __loadds EVXTreeTranslateHotPoint(TTree* This, VECTOR3* deltahp);
  331. void __loadds EVXTreeGetHotPoint(const TTree* This, QuickFixVector3* hp);
  332. void __loadds EVXTreeSetHotPoint(TTree* This, const QuickFixVector3* hp);
  333. TTree* __loadds EVXTreeClone(TTree* This, BOOLEAN cloneAll);
  334. TTree* __loadds EVXTreeCopy(TTree* This, BOOLEAN cloneAll);
  335. #ifdef __cplusplus
  336. void __loadds EVXTreeGetBBox(TTree* This, BOX3D* box, BOOLEAN noLightsCameras = false);
  337. #else
  338. void __loadds EVXTreeGetBBox(TTree* This, BOX3D* box, BOOLEAN noLightsCameras);
  339. #endif
  340. void __loadds EVXTreeBeginMove(TTree* This);
  341. void __loadds EVXTreeEndMove(TTree* This);
  342.  
  343. //---- TGroup ----
  344. TGroup* __loadds EVXGroupNew(TScene* scene);
  345. void __loadds EVXGroupSetBBox(TGroup* This, BOX3D* box);
  346. void __loadds EVXGroupSetOpenClose(TGroup* This, BOOLEAN openIt);
  347. BOOLEAN __loadds EVXGroupIsOpen(TGroup* This);
  348. void __loadds EVXGroupDoOpenClose(TGroup* This, BOOLEAN openIt);
  349.  
  350. //---- TLight ----
  351. TLight* __loadds EVXLightNew(long keyword, TScene* scene);
  352. void __loadds EVXLightSetParameter(TLight* This, long keyword, void* parameter);
  353. void __loadds EVXLightGetParameter(TLight* This, long keyword, void* parameter);
  354.  
  355. //---- TCamera ----
  356. #ifdef __cplusplus
  357. enum EEVXPosition {kReference,kTop,kBottom,kLeft,kRight,kFront,kBack};
  358. #else
  359. enum {kReference,kTop,kBottom,kLeft,kRight,kFront,kBack};
  360. typedef short EEVXPosition;
  361. #endif
  362.  
  363. TCamera* __loadds EVXCameraNew(long keyword, TScene* scene);
  364. void __loadds EVXCameraPreset(TCamera* This, EEVXPosition position, VECTOR3* aimedPoint, FIXED distance);
  365. void __loadds EVXCameraSetParameter(TCamera* This, long keyword, void* parameter);
  366. void __loadds EVXCameraGetParameter(TCamera* This, long keyword, void* parameter);
  367.  
  368. //---- TInstance ----
  369. TInstance* __loadds EVXInstanceNew(TScene* scene);
  370. void __loadds EVXInstanceSetInstanciable(TInstance* This, TInstanciableBase* object);
  371. TInstanciableBase* __loadds EVXInstanceGetInstanciable(TInstance* This);
  372. void __loadds EVXInstanceGetColor(TInstance* This, COLOR* color);
  373. long __loadds EVXInstanceGetUVSpace(TInstance* This,long uvSpaceID,UVSpaceInfo* theuvSpaceInfo);
  374. long __loadds EVXInstanceGetUVSpaceCount(TInstance* This);
  375. void __loadds EVXInstanceAddShadingShape(TInstance* This,TShadingShape*theShadingShape,long uvSpaceID);
  376.  
  377. //---- TShadingShape ----
  378. TShadingShape* __loadds EVXShadingShapeNew(long itsClass);
  379. void __loadds EVXShadingShapeSetShader(TShadingShape* This,TShader* theShader);
  380. void __loadds EVXShadingShapeSetBBox(TShadingShape* This,BOX2D* box);
  381.  
  382. //---- TShader ----
  383. TShader* __loadds EVXShaderNew(long itsClass);
  384. void __loadds EVXShaderSetParameter(TShader* This, long keyword, void* parameter);
  385. void __loadds EVXShaderGetParameter(TShader* This, long keyword, void* parameter);
  386.  
  387. //---- TMap ----
  388.  
  389. TMap* __loadds EVXMapNew();
  390.  
  391. #ifdef __cplusplus
  392. }
  393. #endif
  394. #if defined(qPointersD0) && defined(__MWERKS__) && defined(qPowerPC)
  395. #pragma pointers_in_A0
  396. #endif
  397.  
  398. void InitializeEVXDB();
  399. void TerminateEVXDB();
  400.  
  401. #endif
  402.